| Y_prix | X1_surface | |
|---|---|---|
| logement1 | 1000 | 50 |
| logement2 | 800 | 30 |
| logement3 | 600 | 25 |
| logement4 | 1000 | 60 |
| logement5 | 800 | 35 |
L’apprentissage supervisé
L’apprentissage non supervisé
L’apprentissage par essai/erreur
\[ Y = f(X_1, X_2, ...,X_n) \]
Le but premier de l’apprentissage supervisé n’est pas d’expliquer mais bien de prédire.
| Y_prix | X1_surface | |
|---|---|---|
| logement1 | 1000 | 50 |
| logement2 | 800 | 30 |
| logement3 | 600 | 25 |
| logement4 | 1000 | 60 |
| logement5 | 800 | 35 |
\[ Y = 416,5 + 10,6 X_1 \]
| Y_prix | X1_surface | prix_estime | |
|---|---|---|---|
| logement1 | 1000 | 50 | 945.9 |
| logement2 | 800 | 30 | 734.1 |
| logement3 | 600 | 25 | 681.2 |
| logement4 | 1000 | 60 | 1051.8 |
| logement5 | 800 | 35 | 787.1 |
| surface | prix_prevu | |
|---|---|---|
| logement6 | 45 | 892.9 |
| logement7 | 30 | 734.1 |
| logement8 | 110 | 1581.2 |
Les modèles de régression
Régression linéaire (Régression)
Régression logistique (Classification)
Les modèles à base d’arbre
Arbre de décision (Régression et classification)
Forêt aléatoire (Régression et classification)
XGBoost (Régression et classification)
Les réseaux de neurones et le deep learning
Le modèle apprend sur une base d’entraînement.
On teste sa performance sur une base de test.
Le sous-apprentissage : le modèle n’est pas adapté ou trop simple.
Le sur-apprentissage : le modèle colle trop aux données d’apprentissage.
Définir le sujet (classification ou régression ?)
Explorer et nettoyer la base de données
Réserver une partie de la base pour l’apprentissage/test
Apprendre des données avec des modèles/algorithmes
Comparer les performances prédictives de ces algorithmes
Choisir le meilleur modèle et le mettre en production
| Y_REVENU | X1_NBPIECES | X2_AGE |
|---|---|---|
| 42476 | 4 | 59 |
| 14155 | 3 | 96 |
| 24696 | 1 | 41 |
| 21418 | 2 | 74 |
| 64255 | 5 | 38 |
| 42047 | 3 | 43 |
| Name | grandile |
| Number of rows | 5418 |
| Number of columns | 3 |
| _______________________ | |
| Column type frequency: | |
| numeric | 3 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| Y_REVENU | 0 | 1 | 33889.09 | 19431.26 | 9823 | 19771.5 | 27169.5 | 44531 | 116674 | ▇▅▁▁▁ |
| X1_NBPIECES | 0 | 1 | 3.61 | 1.94 | 1 | 2.0 | 3.0 | 5 | 10 | ▇▇▆▂▁ |
| X2_AGE | 0 | 1 | 51.82 | 18.74 | 16 | 37.0 | 50.0 | 66 | 99 | ▅▇▇▅▂ |
Traitement des données manquantes
Traitement des “outliers”
Encodage de variables
Création de nouvelles variables
| Name | train_grandile |
| Number of rows | 3250 |
| Number of columns | 3 |
| _______________________ | |
| Column type frequency: | |
| numeric | 3 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| Y_REVENU | 0 | 1 | 33478.94 | 19253.68 | 9823 | 19689.75 | 26673.5 | 44496.5 | 109241 | ▇▅▂▁▁ |
| X1_NBPIECES | 0 | 1 | 3.59 | 1.92 | 1 | 2.00 | 3.0 | 5.0 | 10 | ▇▇▆▂▁ |
| X2_AGE | 0 | 1 | 51.92 | 18.80 | 16 | 37.00 | 50.0 | 66.0 | 99 | ▅▇▆▅▂ |
Length Class Mode
pre 3 stage_pre list
fit 2 stage_fit list
post 1 stage_post list
trained 1 -none- logical
L’algorithme (CART) choisit la variable la plus discriminante
Test de toutes les valeurs pour déterminer le seuil optimal
Partage de la population en deux noeuds
Il renouvelle les 3 premières étapes pour chaque noeud
L’utilisateur définit le nombre de noeuds souhaités (max = N)
Les valeurs estimées sont les moyennes des noeuds terminaux
══ Workflow [trained] ══════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: decision_tree()
── Preprocessor ────────────────────────────────────────────────────────────────
0 Recipe Steps
── Model ───────────────────────────────────────────────────────────────────────
n= 3250
node), split, n, deviance, yval
* denotes terminal node
1) root 3250 1.204418e+12 33478.94
2) X2_AGE>=59.5 1093 7.009491e+10 18209.92 *
3) X2_AGE< 59.5 2157 7.503724e+11 41216.09
6) X1_NBPIECES< 4.5 1328 3.958018e+11 35487.69
12) X2_AGE< 24.5 117 6.771606e+09 15298.85 *
13) X2_AGE>=24.5 1211 3.367348e+11 37438.23
26) X1_NBPIECES< 1.5 225 1.676386e+10 27253.01 *
27) X1_NBPIECES>=1.5 986 2.913035e+11 39762.44 *
7) X1_NBPIECES>=4.5 829 2.411843e+11 50392.59 *
Comment la machine apprend ?
La machine apprend sur des données étiquetées grâce à des algorithmes/modèles.
Le but de ces algorithmes est de minimiser l’erreur d’estimation.
Il existe de nombreux modèles/algorithmes.